
def myFunc(self):  # 参数不写self则表示创建static方法 | 带self表示创建实例方法
    return "this is myFunc!"

class MyMetaClass(type):  # type的作用结合上述第3点
    '''
    cls：要动态修改的类
    name：新的类名
    bases：继承的父类
    attrs：新的属性、方法
    '''
    def __new__(cls, name, bases, attrs):
        '''必须实现new()'''
        attrs['name'] = '自定义的类'
        attrs['show'] = lambda self: '123'  # 此处func是一个示例的函数，实际情况应改为自己的函数
        attrs['func'] = myFunc
        return super().__new__(cls, name, bases, attrs)

class DemoClass(object, metaclass=MyMetaClass):
    '''
    metaclass=MyMetaClass，代表使用MyMetaClass来创建所需的类。
    默认创建MyMetaClass中attrs中的属性和方法
    '''
    pass  # 什么都不写，看看其默认创建的哪些属性、方法。


if __name__ == "__main__":
    dc = DemoClass()
    print("name: ", dc.name)  # 输出＂自定义的类＂
    print("show: ", dc.show())  # 输出＂123＂
    print("func: ", dc.func())  # 输出＂this is myFunc!＂
 